home *** CD-ROM | disk | FTP | other *** search
- Recent user-visible changes to Tcl:
-
- 1. No more [command1] [command2] construct for grouping multiple
- commands on a single command line.
-
- 2. Semi-colon now available for grouping commands on a line.
-
- 3. For a command to span multiple lines, must now use backslash-return
- at the end of each line but the last.
-
- 4. "Var" command has been changed to "set".
-
- 5. Double-quotes now available as an argument grouping character.
-
- 6. "Return" may be used at top-level.
-
- 7. More backslash sequences available now. In particular, backslash-newline
- may be used to join lines in command files.
-
- 8. New or modified built-in commands: case, return, for, glob, info,
- print, return, set, source, string, uplevel.
-
- 9. After an error, the variable "errorInfo" is filled with a stack
- trace showing what was being executed when the error occurred.
-
- 10. Command abbreviations are accepted when parsing commands, but
- are not recommended except for purely-interactive commands.
-
- 11. $, set, and expr all complain now if a non-existent variable is
- referenced.
-
- 12. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man.
-
- 13. Changed to distinguish between empty variables and those that don't
- exist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed
- (NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY ***
-
- 14. Changed meaning of "level" argument to "uplevel" command (1 now means
- "go up one level", not "go to level 1"; "#1" means "go to level 1").
- *** POTENTIAL INCOMPATIBILITY ***
-
- 15. 3/19/90 Added "info exists" option to see if variable exists.
-
- 16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations.
-
- 17. 3/19/90 Added extra errorInfo option to "error" command.
-
- 18. 3/21/90 Double-quotes now only affect space: command, variable,
- and backslash substitutions still occur inside double-quotes.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 19. 3/21/90 Added support for \r.
-
- 20. 3/21/90 List, concat, eval, and glob commands all expect at least
- one argument now. *** POTENTIAL INCOMPATIBILITY ***
-
- 21. 3/22/90 Added "?:" operators to expressions.
-
- 22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed.
-
- ------------------- Released version 3.1 ---------------------
-
- 23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c".
-
- 24. 3/29/90 Semi-colon is not treated specially when enclosed in
- double-quotes.
-
- ------------------- Released version 3.2 ---------------------
-
- 25. 4/16/90 Rewrote "exec" not to use select or signals anymore.
- Should be more Sys-V compatible, and no slower in the normal case.
-
- 26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code
- left in Tcl, now), and added Tcl_TildeSubst procedure. Added automatic
- tilde-substitution in many commands, including "glob".
-
- ------------------- Released version 3.3 ---------------------
-
- 27. 7/11/90 Added "Tcl_AppendResult" procedure.
-
- 28. 7/20/90 "History" with no options now defaults to "history info"
- rather than to "history redo". Although this is a backward incompatibility,
- it should only be used interactively and thus shouldn't present any
- compatibility problems with scripts.
-
- 29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean"
- procedures.
-
- 30. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to be
- necessary, since the same effect can be achieved with the deletion
- callbacks on individual commands. *** POTENTIAL INCOMPATIBILITY ***
-
- 31. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar,
- and Tcl_VarTraceInfo procedures, "trace" command.
-
- 32. 8/9/90 Mailed out list of all bug fixes since 3.3 release.
-
- 33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and
- semi-colons. Mailed out patch.
-
- 34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s.
- Mailed out patch.
-
- 35. 9/19/90 Rewrote exec to always use files both for input and
- output to the process. The old pipe-based version didn't work if
- the exec'ed process forked a child and then exited: Tcl waited
- around for stdout to get closed, which didn't happen until the
- grandchild exited.
-
- 36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough
- in Tcl_Eval, allowing error messages from different commands to
- pile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval that
- re-initializes result and ERR_IN_PROGRESS flag. Didn't mail out
- patch: changes too complicated to describe.
-
- 37. 12/19/90 Added Tcl_VarEval procedure as a convenience for
- assembling and executing Tcl commands.
-
- 38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedure
- and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from
- Tcl_Eval.
-
- ----------------- Released version 5.0 with Tk ------------------
-
- 39. 4/3/91 Removed change bars from manual entries, leaving only those
- that came after version 3.3 was released.
-
- 40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach.
-
- 41. 5/23/91 Massive revision to Tcl parser to simplify the implementation
- of string and floating-point support in expressions. Newlines inside
- [] are now treated as command separators rather than word separators
- (this makes newline treatment consistent throughout Tcl).
- *** POTENTIAL INCOMPATIBILITY ***
-
- 42. 5/23/91 Massive rewrite of expression code to support floating-point
- values and simple string comparisons. The C interfaces to expression
- routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble,
- etc.), but all old Tcl expression strings should be accepted by the new
- expression code.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 43. 5/23/91 Modified tclHistory.c to check for negative "keep" value.
-
- 44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It now
- returns 0 to indicate that a backslash sequence should be replaced by
- no character at all.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 45. 5/29/91 Modified to use ANSI C function prototypes. Must set
- "USE_ANSI" switch when compiling to get prototypes.
-
- 46. 5/29/91 Completed test suite by providing tests for all of the
- built-in Tcl commands.
-
- 47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing
- white-space in each of the things it concatenates and to ignore
- elements that are empty or have only white space in them. This
- produces cleaner output from the "concat" command.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return
- new value of variable.
-
- 49. 6/1/91 Added "while" and "cd" commands.
-
- 50. 6/1/91 Changed "exec" to delete the last character of program
- output if it is a newline. In most cases this makes it easier to
- process program-generated output.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 51. 6/1/91 Made sure that pointers are never used after freeing them.
-
- 52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with
- [] inside quotes correctly.
-
- 53. 6/8/91 Fixed exec.test to accept return values of either 1 or
- 255 from "false" command.
-
- 54. 7/6/91 Massive overhaul of variable management. Associative
- arrays now available, along with "unset" command (and Tcl_UnsetVar
- procedure). Variable traces have been completely reworked:
- interfaces different both from Tcl and C, and multiple traces may
- exist on same variable. Can no longer redefine existing local
- variable to be global. Calling sequences have changed slightly
- for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar
- can fail and return a NULL result. New forms of variable-manipulation
- procedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable
- $-notation changed to support array indexing.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 55. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement,
- Tcl_ConvertElement, Tcl_AppendElement.
-
- 56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the
- work of the "source" command.
-
- 57. 7/20/91 Major reworking of "exec" command to allow pipelines,
- more redirection, background. Added new procedures Tcl_Fork,
- Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old
- "< input" notation has been replaced by "<< input" ("<" is for
- redirection from a file). Also handles error returns and abnormal
- terminations (e.g. signals) differently.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 58. 7/21/91 Added "append" and "lappend" commands.
-
- 59. 7/22/91 Reworked error messages and manual entries to use
- ?x? as the notation for an optional argument x, instead of [x]. The
- bracket notation was often confused with the use of brackets for
- command substitution. Also modified error messages to be more
- consistent.
-
- 60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether
- or not the command actually existed, and the "rename" command uses
- this information to return an error if an attempt is made to delete
- a non-existent command.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 61. 7/25/91 Added new "errorCode" mechanism, along with procedures
- Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. Renamed
- Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to
- avoid compatibility problems.
-
- 62. 7/26/91 Extended "case" command with alternate syntax where all
- patterns and commands are together in a single list argument: makes
- it easier to write multi-line case statements.
-
- 63. 7/27/91 Changed "print" command to perform tilde-substitution on
- the file name.
-
- 64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright"
- options to "string" command.
-
- 65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file"
- command.
-
- 66. 8/1/91 Added "split" and "join" commands.
-
- 67. 8/11/91 Added commands for file I/O, including "open", "close",
- "read", "gets", "puts", "flush", "eof", "seek", and "tell".
-
- 68. 8/14/91 Switched to use a hash table for command lookups. Command
- abbreviations no longer have direct support in the Tcl interpreter, but
- it should be possible to simulate them with the auto-load features
- described below. The "noAbbrev" variable is no longer used by Tcl.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 68.5 8/15/91 Added support for "unknown" command, which can be used to
- complete abbreviations, auto-load library files, auto-exec shell
- commands, etc.
-
- 69. 8/15/91 Added -nocomplain switch to "glob" command.
-
- 70. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Also
- added "info script" option.
-
- 71. 8/20/91 Changed "file" command to take "option" argument as first
- argument (before file name), for consistency with other Tcl commands.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 72. 8/20/91 Changed format of information in $errorInfo variable:
- comments such as
- ("while" body line 1)
- are now on separate lines from commands being executed.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees
- large buffers that it allocates.
-
- 74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort"
- commands.
-
- 75. 8/28/91 Added "incr" and "exit" commands.
-
- 76. 8/30/91 Added "regexp" and "regsub" commands.
-
- 77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure
- address). This allows for alternative storage managers.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 78. 9/6/91 Added "index", "length", and "range" options to "string"
- command. Added "lindex", "llength", and "lrange" commands.
-
- 79. 9/8/91 Removed "index", "length", "print" and "range" commands.
- "Print" is redundant with "puts", but less general, and the other
- commands are replaced with the new commands described in change 78
- above.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 80. 9/8/91 Changed history revision to occur even when history command
- is nested; needed in order to allow "history" to be invoked from
- "unknown" procedure.
-
- 81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less
- general now, but makes it easier to run Tcl on systems that don't
- have vfprintf). Also changed "strerror" not to reclare sys_errlist.
-
- 82. 9/19/91 Lots of changes to improve portability to different UNIX
- systems, including addition of "config" script to adapt Tcl to the
- configuration of the system it's being compiled on.
-
- 83. 9/22/91 Added "pwd" command.
-
- 84. 9/22/91 Renamed manual pages so that their filenames are no more
- than 14 characters in length, moved to "doc" subdirectory.
-
- 85. 9/24/91 Redid manual entries so they contain the supplemental
- macros that they need; can just print with "troff -man" or "man"
- now.
-
- 86. 9/26/91 Created initial version of script library, including
- a version of "unknown" that does auto-loading, auto-execution, and
- abbreviation expansion. This library is used by tclTest
- automatically. See the "library" manual entry for details.
-
- ----------------- Released version 6.0, 9/26/91 ------------------
-
- 87. 9/30/91 Made "string tolower" and "string toupper" check case
- before converting: on some systems, "tolower" and "toupper" assume
- that character already has particular case.
-
- 88. 9/30/91 Fixed bug in Tcl_SetResult: wasn't always setting freeProc
- correcly when called with NULL value. This tended to cause memory
- allocation errors later.
-
- 89. 10/3/91 Added "upvar" command.
-
- 90. 10/4/91 Changed "format" so that internally it converts %D to %ld,
- %U to %lu, %O to %lo, and %F to %f. This eliminates some compatibility
- problems on some machines without affecting behavior.
-
- 91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all
- option when the last match wasn't at the end of the string.
-
- 92. 10/17/91 Fixed problems with backslash sequences: \r support was
- incomplete and \f and \v weren't supported at all.
-
- 93. 10/24/91 Added Tcl_InitHistory procedure.
-
- 94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that
- don't match, rather than returning an error.
-
- 95. 10/27/91 Modified "regexp" to return actual strings in matchVar
- and subMatchVars instead of indices. Added "-indices" switch to cause
- indices to be returned.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for
- sizes of floats and doubles instead of using "sizeof".
-
- 97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages
- weren't being storage-managed correctly, causing spurious free's.
-
- 98. 10/31/91 Form feed and vertical tab characters are now considered
- to be space characters by the parser.
-
- 99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar.
-
- 100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be ommitted
- if all case branches were embedded in a single list.
-
- 101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official
- POSIC types and function prototypes.
-
- ----------------- Released version 6.1, 11/7/91 ------------------
-
- 102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several
- ways. First, allowed caller to request that only backslashes be used
- (no braces). Second, made Tcl_ConvertElement more aggressive in using
- backslashes for braces and quotes.
-
- 103. 12/5/91 Added "type", "lstat", and "readlink" options to "file"
- command, plus added new "type" element to output of "stat" and "lstat"
- options.
-
- 104. 12/10/91 Manual entries had first lines that caused "man" program
- to try weird preprocessor. Added blank comment lines to fix problem.
-
- 105. 12/16/91 Fixed a few bugs in auto_mkindex proc: wasn't handling
- errors properly, and hadn't been upgraded for new "regexp" syntax.
-
- 106. 1/2/92 Fixed bug in "file" command where it didn't properly handle
- a file names containing tildes where the indicated user doesn't exist.
-
- 107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different
- errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number; Tcl
- will only use one of them.
-
- 108. 1/2/92 Lots of changes to configuration script to handle many more
- systems more gracefully. E.g. should now detect the bogus strtoul that
- comes with AIX and substitute Tcl's own version instead.
-
- ----------------- Released version 6.2, 1/10/92 ------------------
-
- 109. 1/20/92 Config didn't have code to actually use "uid_t" variable
- to set TCL_UIT_T #define.
-
- 110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when
- too-deep recursion occurred.
-
- 111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean.
-
- 112. 3/19/92 Config wasn't installing default version of strtod.c for
- systems that don't have one in libc.a.
-
- 113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s,
- like 0.75, couldn't be properly substituted into expressions with
- variable or command substitution.
-
- 114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't
- checking to make sure that it was able to write the variable OK.
-
- 115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't
- compute file size right for device files.
-
- 116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting
- the trace command.
-
- ----------------- Released version 6.3, 5/1/92 ------------------
-
- 117. 5/1/92 Added Tcl_GlobalEval.
-
- 118. 6/1/92 Changed auto-load facility to source files at global level.
-
- 119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which
- sometimes caused core dumps.
-
- 120. 6/21/92 Fixed bug in initialization of regexp pattern cache. This
- bug caused segmentation violations in regexp commands under some conditions.
-
- 121. 6/22/92 Changed implementation of "glob" command to eliminate
- trailing slashes on directory names: they confuse some systems. There
- shouldn't be any user-visible changes in functionality except for names
- in error messages not having trailing slashes.
-
- 122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0.
-
- 123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing
- the buffer to an empty string.
-
- 124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string
- after errors in the "default" clause.
-
- 125. 7/25/92 Speeded up auto_load procedure: don't reread all the index
- files unless the path has changed.
-
- 126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not
- _POSIX_PATH_MAX.
-
- ----------------- Released version 6.4, 8/7/92 ------------------
-